home *** CD-ROM | disk | FTP | other *** search
/ EnigmA Amiga Run 1995 November / EnigmA AMIGA RUN 02 (1995)(G.R. Edizioni)(IT)[!][issue 1995-11][Skylink CD].iso / earcd / giochi / aboulder.lha / ABoulderDash1.0 / transition.s < prev   
Text File  |  1995-08-27  |  14KB  |  775 lines

  1.     opt    L+
  2.     opt    O2+
  3.     opt    OW-
  4.  
  5. *==========================================
  6. *
  7. * File:        Transition.s
  8. * Version:     1
  9. * Revision:    0
  10. * Created:     6-VII-1993
  11. * By:          FNC Slothouber
  12. * Last Update: 22-Jan-1995
  13. * By:          FNC Slothouber
  14. *
  15. *==========================================
  16.  
  17.     incdir    "include:"
  18.  
  19.     include    boulderdash.i
  20.  
  21.     XDEF    Transition
  22.  
  23.     XREF    ted_bitmap_x
  24.     XREF    ted_grid_field_x
  25.     XREF    animate_offset_x
  26.     XREF    flag_scroll_left
  27.     XREF    flag_scroll_right
  28.     XREF    left_row_update
  29.     XREF    right_row_update
  30.     XREF    ted_bitmap_y
  31.     XREF    ted_grid_field_y
  32.     XREF    animate_offset_y
  33.     XREF    flag_scroll_up
  34.     XREF    flag_scroll_down
  35.     XREF    upper_row_update
  36.     XREF    lower_row_update
  37.  
  38.  
  39. Execute_Trans    macro
  40.     move.l    a3,a2
  41.     move.w    grid_trans(a2),d0
  42.     beq    .ret\@
  43.     pea    .ret\@
  44.     jmp    tabel_access
  45. .ret\@
  46.         endm
  47.  
  48. **----------------------------------------------------
  49.  
  50. *
  51. * Transition
  52. *
  53. * A0                        D0
  54. * A1                        D1
  55. * A2 - grid field           D2 - grid_x
  56. * A3 -                      D3 - grid_y
  57. * A4 -                      D4
  58. * A5 -                      D5
  59. * A6                        D6
  60. *                           D7
  61.  
  62. Transition
  63.  
  64.     move.w    #GRIDF_HEIGHT-1-6,d3
  65.     add.l    #3*GRIDF_WIDTH*grid_sizeof+(3*grid_sizeof),a2
  66. .ll0    move.w    #GRIDF_WIDTH-1-6,d2
  67. .ll1    move.w    grid_trans(a2),d0
  68.     beq    .next
  69.     pea    .next
  70.     jmp    tabel(pc,d0)
  71. * next grid
  72. .next    addq.l    #grid_sizeof,a2
  73.     dbra    d2,.ll1
  74.     add.l    #6*grid_sizeof,a2
  75.     dbra    d3,.ll0
  76.     rts
  77.  
  78.  
  79. ******************
  80. *** Jump Table ***
  81. ******************
  82. tabel_access
  83.     jmp    tabel(pc,d0)
  84. tabel    jmp    dummy            TRANS_NONE
  85.     jmp    Trans_Down
  86.     jmp    Trans_Left
  87.     jmp    Trans_Ted_Right
  88.     jmp    Trans_Up
  89.     jmp    Trans_Kill_Mover
  90.     jmp    Trans_Kill_Butterfly
  91.     jmp    Trans_Kill_Butterfly2
  92.     jmp    Trans_Kill_Butterfly3
  93.     jmp    Trans_Kill_Butterfly4
  94.  
  95.     jmp    Trans_To_Empty
  96.     jmp    Trans_To_Fungis
  97.     jmp    Trans_Ted_Right
  98.     jmp    Trans_Rock_Right
  99.     jmp    Trans_Diamond_Right
  100.     jmp    Trans_Mover_Right
  101.     jmp    Trans_Butterfly_Right
  102.  
  103.     jmp    Trans_Ted_Left
  104.     jmp    Trans_Rock_Left
  105.     jmp    Trans_Diamond_Left
  106.     jmp    Trans_Mover_Left
  107.     jmp    Trans_Butterfly_Left
  108.  
  109.     jmp    Trans_Ted_Up
  110.     jmp    Trans_Rock_Up
  111.     jmp    Trans_Diamond_Up
  112.     jmp    Trans_Mover_Up
  113.     jmp    Trans_Butterfly_Up
  114.  
  115.     jmp    Trans_Ted_Down
  116.     jmp    Trans_Rock_Down
  117.     jmp    Trans_Diamond_Down
  118.     jmp    Trans_Mover_Down
  119.     jmp    Trans_Butterfly_Down
  120.  
  121.     jmp    Trans_Right_Scroll_Left
  122.     jmp    Trans_Left_Scroll_Right
  123.     jmp    Trans_Down_Scroll_Up
  124.     jmp    Trans_Up_Scroll_Down
  125.  
  126.     jmp    Trans_Ted_Moves_Rock_Left
  127.     jmp    Trans_Ted_Moves_Rock_Right
  128.     jmp    Trans_Ted_Scroll_Moves_Rock_Left
  129.     jmp    Trans_Ted_Scroll_Moves_Rock_Right
  130.  
  131.     jmp    Trans_Kill_Ted
  132.     jmp    dummy
  133.     jmp    dummy
  134.     jmp    dummy
  135.     jmp    dummy
  136.     jmp    dummy
  137.  
  138.  
  139.  
  140. *************************
  141. ** Transition Routines **
  142. *************************
  143.  
  144. dummy
  145.     rts
  146.  
  147. *---------------------------------------
  148. *
  149. * Trans_Kill_Butterfly - Replace butterfly by six diamonds
  150. *
  151.  
  152. Put_Diamond    macro
  153.     move.w    grid_type(a3),d1
  154.     cmp.w    #G_BORDER,d1
  155.     beq.s    .ne\@
  156.     move.w    #DRAW_DIAMOND,grid_draw(a3)
  157.     move.w    #TRANS_NONE,grid_trans(a3)
  158.     move.w    #G_DIAMOND,grid_type(a3)
  159.     move.b    #2,grid_dirty(a3)
  160.     move.b    #0,grid_data(a3)
  161. .ne\@
  162.         endm
  163.  
  164. *   *       0*0
  165. *   X       000
  166. *           000
  167.  
  168. Trans_Kill_Butterfly
  169.  
  170. trkb_REGS    REG    A2/A3
  171.  
  172.     movem.l    trkb_REGS,-(sp)
  173.     move.l    a2,a3
  174.     Put_Diamond
  175.     add.l    #ONE_LEFT,a3
  176.     Execute_Trans
  177.     Put_Diamond
  178.     add.l    #ONE_DOWN,a3
  179.     Execute_Trans
  180.     Put_Diamond
  181.     add.l    #ONE_DOWN,a3
  182.     Execute_Trans
  183.     Put_Diamond
  184.     add.l    #ONE_RIGHT,a3
  185.     Execute_Trans
  186.     Put_Diamond
  187.     add.l    #ONE_RIGHT,a3
  188.     Execute_Trans
  189.     Put_Diamond
  190.     add.l    #ONE_UP,a3
  191.     Execute_Trans
  192.     Put_Diamond
  193.     add.l    #ONE_LEFT,a3
  194.     Execute_Trans
  195.     Put_Diamond
  196.     add.l    #ONE_UP+ONE_RIGHT,a3
  197.     Execute_Trans
  198.     Put_Diamond
  199.     movem.l    (sp)+,trkb_REGS
  200.     rts
  201.  
  202. *           000
  203. *   X*      00*
  204. *           000
  205.  
  206. Trans_Kill_Butterfly2
  207.  
  208.     movem.l    trkb_REGS,-(sp)
  209.     move.l    a2,a3
  210.     Put_Diamond
  211.     add.l    #ONE_DOWN,a3
  212.     Execute_Trans
  213.     Put_Diamond
  214.     add.l    #ONE_LEFT,a3
  215.     Execute_Trans
  216.     Put_Diamond
  217.     add.l    #ONE_LEFT,a3
  218.     Execute_Trans
  219.     Put_Diamond
  220.     add.l    #ONE_UP,a3
  221.     Execute_Trans
  222.     Put_Diamond
  223.     add.l    #ONE_UP,a3
  224.     Execute_Trans
  225.     Put_Diamond
  226.     add.l    #ONE_RIGHT,a3
  227.     Execute_Trans
  228.     Put_Diamond
  229.     add.l    #ONE_DOWN,a3
  230.     Execute_Trans
  231.     Put_Diamond
  232.     add.l    #ONE_UP+ONE_RIGHT,a3
  233.     Execute_Trans
  234.     Put_Diamond
  235.     movem.l    (sp)+,trkb_REGS
  236.     rts
  237.  
  238. *           000
  239. *   X       000
  240. *   *       0*0
  241.  
  242. Trans_Kill_Butterfly3
  243.  
  244.     movem.l    trkb_REGS,-(sp)
  245.     move.l    a2,a3
  246.     Put_Diamond
  247.     add.l    #ONE_LEFT,a3
  248.     Execute_Trans
  249.     Put_Diamond
  250.     add.l    #ONE_UP,a3
  251.     Execute_Trans
  252.     Put_Diamond
  253.     add.l    #ONE_UP,a3
  254.     Execute_Trans
  255.     Put_Diamond
  256.     add.l    #ONE_RIGHT,a3
  257.     Execute_Trans
  258.     Put_Diamond
  259.     add.l    #ONE_RIGHT,a3
  260.     Execute_Trans
  261.     Put_Diamond
  262.     add.l    #ONE_DOWN,a3
  263.     Execute_Trans
  264.     Put_Diamond
  265.     add.l    #ONE_LEFT,a3
  266.     Execute_Trans
  267.     Put_Diamond
  268.     add.l    #ONE_DOWN+ONE_RIGHT,a3
  269.     Execute_Trans
  270.     Put_Diamond
  271.     movem.l    (sp)+,trkb_REGS
  272.     rts
  273.  
  274. *           000
  275. *  *X       *00
  276. *           000
  277.  
  278. Trans_Kill_Butterfly4
  279.  
  280.     movem.l    trkb_REGS,-(sp)
  281.     move.l    a2,a3
  282.     Put_Diamond
  283.     add.l    #ONE_UP,a3
  284.     Execute_Trans
  285.     Put_Diamond
  286.     add.l    #ONE_RIGHT,a3
  287.     Execute_Trans
  288.     Put_Diamond
  289.     add.l    #ONE_RIGHT,a3
  290.     Execute_Trans
  291.     Put_Diamond
  292.     add.l    #ONE_DOWN,a3
  293.     Execute_Trans
  294.     Put_Diamond
  295.     add.l    #ONE_DOWN,a3
  296.     Execute_Trans
  297.     Put_Diamond
  298.     add.l    #ONE_LEFT,a3
  299.     Execute_Trans
  300.     Put_Diamond
  301.     add.l    #ONE_UP,a3
  302.     Execute_Trans
  303.     Put_Diamond
  304.     add.l    #ONE_DOWN+ONE_LEFT,a3
  305.     Execute_Trans
  306.     Put_Diamond
  307.     movem.l    (sp)+,trkb_REGS
  308.     rts
  309.  
  310.  
  311. *-------------------------------------------------
  312. *
  313. * Trans_Kill_Ted - Replace Ted by six diamonds
  314. *
  315.  
  316. *           000
  317. *   X       0x0
  318. *           000
  319.  
  320. Trans_Kill_Ted
  321.  
  322. trkt_REGS    REG    A2/A3
  323.  
  324.     movem.l    trkt_REGS,-(sp)
  325.     move.l    a2,a3
  326.     Put_Diamond
  327.     add.l    #ONE_LEFT,a3
  328.     Execute_Trans
  329.     Put_Diamond
  330.     add.l    #ONE_DOWN,a3
  331.     Execute_Trans
  332.     Put_Diamond
  333.     add.l    #ONE_RIGHT,a3
  334.     Execute_Trans
  335.     Put_Diamond
  336.     add.l    #ONE_RIGHT,a3
  337.     Execute_Trans
  338.     Put_Diamond
  339.     add.l    #ONE_UP,a3
  340.     Execute_Trans
  341.     Put_Diamond
  342.     add.l    #ONE_UP,a3
  343.     Execute_Trans
  344.     Put_Diamond
  345.     add.l    #ONE_LEFT,a3
  346.     Execute_Trans
  347.     Put_Diamond
  348.     add.l    #ONE_LEFT,a3
  349.     Execute_Trans
  350.     Put_Diamond
  351.     movem.l    (sp)+,trkt_REGS
  352.     rts
  353.  
  354. *-------------------------------------------------
  355. *
  356. * Trans_Kill_Mover - Replace mover by six empty grids
  357. *
  358.  
  359. Put_Empty    macro
  360.     move.w    grid_type(a3),d1
  361.     cmp.w    #G_BORDER,d1
  362.     beq.s    .ne\@
  363.     move.w    #DRAW_EMPTY,grid_draw(a3)
  364.     move.w    #TRANS_NONE,grid_trans(a3)
  365.     move.w    #G_EMPTY,grid_type(a3)
  366.     move.b    #2,grid_dirty(a3)
  367.     move.b    #EMPTY_REAL_EMPTY,grid_data(a3)
  368. .ne\@
  369.         endm
  370.  
  371. Trans_Kill_Mover
  372.  
  373. trkm_REGS    REG    A2/A3
  374.  
  375.     movem.l    trkm_REGS,-(sp)
  376.     move.l    a2,a3
  377.     Put_Empty
  378.     add.l    #ONE_LEFT,a3
  379.     Execute_Trans
  380.     Put_Empty
  381.     add.l    #ONE_DOWN,a3
  382.     Execute_Trans
  383.     Put_Empty
  384.     add.l    #ONE_DOWN,a3
  385.     Execute_Trans
  386.     Put_Empty
  387.     add.l    #ONE_RIGHT,a3
  388.     Execute_Trans
  389.     Put_Empty
  390.     add.l    #ONE_RIGHT,a3
  391.     Execute_Trans
  392.     Put_Empty
  393.     add.l    #ONE_UP,a3
  394.     Execute_Trans
  395.     Put_Empty
  396.     add.l    #ONE_LEFT,a3
  397.     Execute_Trans
  398.     Put_Empty
  399.     add.l    #ONE_UP+ONE_RIGHT,a3
  400.     Execute_Trans
  401.     Put_Empty
  402.     movem.l    (sp)+,trkm_REGS
  403.     rts
  404.  
  405. *---------------------------------------
  406. *
  407. * Trans_Ted_Scroll_Moves_Rock_Right -
  408. * Move Ted and rock one grid to the Right
  409. *
  410.  
  411. Trans_Ted_Scroll_Moves_Rock_Right
  412.     move.l    a2,a0
  413.     add.l    #2*ONE_RIGHT,a0
  414.     move.w    #DRAW_ROCK,grid_draw(a0)
  415.     move.w    #TRANS_NONE,grid_trans(a0)
  416.     move.w    #G_ROCK,grid_type(a0)
  417.     move.b    #2,grid_dirty(a0)
  418.     move.b    #0,grid_data(a0)
  419.  
  420. *---------------------------------------
  421. *
  422. * Trans_Right_Scroll_Left - Move Ted to the right scroll display to the left
  423. *
  424.  
  425. Trans_Right_Scroll_Left
  426.  
  427.     move.l    ted_bitmap_x,d0
  428.     subq.l    #grid_sizeof,d0
  429.     move.l    d0,ted_bitmap_x
  430.  
  431.     move.l    animate_offset_x,d0
  432.     addq.l    #grid_sizeof,d0
  433.     move.l    d0,animate_offset_x
  434.  
  435.     move.l    left_row_update,d0
  436.     addq.l    #grid_sizeof,d0
  437.     move.l    d0,left_row_update
  438.  
  439.     move.l    right_row_update,d0
  440.     addq.l    #grid_sizeof,d0
  441.     move.l    d0,right_row_update
  442.  
  443.     move.w    #DO_SCROLL,flag_scroll_left
  444.  
  445.     move.w    #DRAW_TED,d0
  446.     bra    Trans_Right
  447.  
  448.  
  449. *---------------------------------------
  450. *
  451. * Trans_Ted_Scroll_Moves_Rock_Left -
  452. * Move Ted and rock one grid to the left
  453. *
  454.  
  455. Trans_Ted_Scroll_Moves_Rock_Left
  456.     move.l    a2,a0
  457.     add.l    #2*ONE_LEFT,a0
  458.     move.w    #DRAW_ROCK,grid_draw(a0)
  459.     move.w    #TRANS_NONE,grid_trans(a0)
  460.     move.w    #G_ROCK,grid_type(a0)
  461.     move.b    #2,grid_dirty(a0)
  462.     move.b    #0,grid_data(a0)
  463.  
  464. *---------------------------------------
  465. *
  466. * Trans_Left_Scroll_Right - Move Ted to the left scroll display to the right
  467. *
  468.  
  469. Trans_Left_Scroll_Right
  470.  
  471.     move.l    ted_bitmap_x,d0
  472.     addq.l    #grid_sizeof,d0
  473.     move.l    d0,ted_bitmap_x
  474.  
  475.     move.l    animate_offset_x,d0
  476.     subq.l    #grid_sizeof,d0
  477.     move.l    d0,animate_offset_x
  478.  
  479.     move.l    left_row_update,d0
  480.     subq.l    #grid_sizeof,d0
  481.     move.l    d0,left_row_update
  482.  
  483.     move.l    right_row_update,d0
  484.     subq.l    #grid_sizeof,d0
  485.     move.l    d0,right_row_update
  486.  
  487.     move.w    #DO_SCROLL,flag_scroll_right
  488.  
  489.     move.w    #DRAW_TED,d0
  490.     bra    Trans_Left
  491.  
  492. *---------------------------------------
  493. *
  494. * Trans_Down_Scroll_Up - Move Ted Downwards scroll display Upwards
  495. *
  496.  
  497. Trans_Down_Scroll_Up
  498.  
  499.     move.l    #grid_sizeof*GRIDF_WIDTH,d1
  500.  
  501.     move.l    ted_bitmap_y,d0
  502.     sub.l    d1,d0
  503.     move.l    d0,ted_bitmap_y
  504.  
  505.     move.l    animate_offset_y,d0
  506.     add.l    d1,d0
  507.     move.l    d0,animate_offset_y
  508.  
  509.     move.l    upper_row_update,d0
  510.     add.l    d1,d0
  511.     move.l    d0,upper_row_update
  512.  
  513.     move.l    lower_row_update,d0
  514.     add.l    d1,d0
  515.     move.l    d0,lower_row_update
  516.  
  517.     move.w    #DO_SCROLL,flag_scroll_up
  518.  
  519.     move.w    #DRAW_TED,d0
  520.     bra    Trans_Down
  521.  
  522. *---------------------------------------
  523. *
  524. * Trans_Up_Scroll_Down - Move Ted Upwards scroll display downwards
  525. *
  526.  
  527. Trans_Up_Scroll_Down
  528.  
  529.     move.l    #grid_sizeof*GRIDF_WIDTH,d1
  530.  
  531.     move.l    ted_bitmap_y,d0
  532.     add.l    d1,d0
  533.     move.l    d0,ted_bitmap_y
  534.  
  535.     move.l    animate_offset_y,d0
  536.     sub.l    d1,d0
  537.     move.l    d0,animate_offset_y
  538.  
  539.     move.l    upper_row_update,d0
  540.     sub.l    d1,d0
  541.     move.l    d0,upper_row_update
  542.  
  543.     move.l    lower_row_update,d0
  544.     sub.l    d1,d0
  545.     move.l    d0,lower_row_update
  546.  
  547.     move.w    #DO_SCROLL,flag_scroll_down
  548.  
  549.     move.w    #DRAW_TED,d0
  550.     bra    Trans_Up
  551.  
  552. *---------------------------------------
  553. *
  554. * Trans_Ted_Moves_Rock_Left -
  555. * Move Ted and rock one grid to the left
  556. *
  557.  
  558. Trans_Ted_Moves_Rock_Left
  559.     move.l    a2,a0
  560.     add.l    #ONE_LEFT,a0
  561.     move.w    #DRAW_TED,grid_draw(a0)
  562.     move.w    #TRANS_NONE,grid_trans(a0)
  563.     move.w    #G_TED,grid_type(a0)
  564.     move.b    #2,grid_dirty(a0)
  565.     move.b    grid_data(a2),grid_data(a0)
  566.  
  567.     add.l    #ONE_LEFT,a0
  568.     move.w    #DRAW_ROCK,grid_draw(a0)
  569.     move.w    #TRANS_NONE,grid_trans(a0)
  570.     move.w    #G_ROCK,grid_type(a0)
  571.     move.b    #2,grid_dirty(a0)
  572.     move.b    #0,grid_data(a0)
  573.  
  574.     move.w    #DRAW_EMPTY,grid_draw(a2)
  575.     move.w    #TRANS_NONE,grid_trans(a2)
  576.     move.w    #G_EMPTY,grid_type(a2)
  577.     move.b    #2,grid_dirty(a2)
  578.     move.b    #EMPTY_REAL_EMPTY,grid_data(a2)
  579.     rts
  580.  
  581. *---------------------------------------
  582. *
  583. * Trans_Ted_Moves_Rock_Right -
  584. * Move Ted and rock one grid to the right
  585. *
  586.  
  587. Trans_Ted_Moves_Rock_Right
  588.  
  589.     move.l    a2,a0
  590.     add.l    #ONE_RIGHT,a0
  591.     move.w    #DRAW_TED,grid_draw(a0)
  592.     move.w    #TRANS_NONE,grid_trans(a0)
  593.     move.w    #G_TED,grid_type(a0)
  594.     move.b    #2,grid_dirty(a0)
  595.     move.b    grid_data(a2),grid_data(a0)
  596.  
  597.     add.l    #ONE_RIGHT,a0
  598.     move.w    #DRAW_ROCK,grid_draw(a0)
  599.     move.w    #TRANS_NONE,grid_trans(a0)
  600.     move.w    #G_ROCK,grid_type(a0)
  601.     move.b    #2,grid_dirty(a0)
  602.     move.b    #0,grid_data(a0)
  603.  
  604.     move.w    #DRAW_EMPTY,grid_draw(a2)
  605.     move.w    #TRANS_NONE,grid_trans(a2)
  606.     move.w    #G_EMPTY,grid_type(a2)
  607.     move.b    #2,grid_dirty(a2)
  608.     move.b    #EMPTY_REAL_EMPTY,grid_data(a2)
  609.     rts
  610.  
  611. *---------------------------------------
  612. *
  613. * Trans_To_Empty - Change type of object to Empty
  614. *
  615.  
  616. Trans_To_Empty
  617.     move.w    #G_EMPTY,grid_type(a2)
  618.     move.w    #TRANS_NONE,grid_trans(a2)
  619.     move.w    #DRAW_EMPTY,grid_draw(a2)
  620.     move.b    #2,grid_dirty(a2)
  621.     move.b    #EMPTY_REAL_EMPTY,grid_data(a2)
  622.     rts
  623.  
  624. *---------------------------------------
  625. *
  626. * Trans_To_Fungis - Change type of object to Fungis
  627. *
  628.  
  629. Trans_To_Fungis
  630.     move.w    #G_FUNGIS,grid_type(a2)
  631.     move.w    #TRANS_NONE,grid_trans(a2)
  632.     move.w    #DRAW_FUNGIS,grid_draw(a2)
  633.     move.b    #2,grid_dirty(a2)
  634.     rts
  635.  
  636. *---------------------------------------
  637. *
  638. * Trans_Down - Move Object one grid down
  639. *
  640.  
  641. Trans_Ted_Down
  642.     move.w    #DRAW_TED,d0
  643.     bra    Trans_Down
  644. Trans_Rock_Down
  645.     move.w    #DRAW_ROCK,d0
  646.     bra    Trans_Down
  647. Trans_Diamond_Down
  648.     move.w    #DRAW_DIAMOND,d0
  649.     bra    Trans_Down
  650. Trans_Mover_Down
  651.     move.w    #DRAW_MOVER,d0
  652.     bra    Trans_Down
  653. Trans_Butterfly_Down
  654.     move.w    #DRAW_BUTTERFLY,d0
  655.     bra    Trans_Down
  656.  
  657. Trans_Down
  658.     move.l    a2,a0
  659.     add.l    #ONE_DOWN,a0
  660.     move.w    d0,grid_draw(a0)
  661.     move.w    #TRANS_NONE,grid_trans(a0)
  662.     move.w    grid_type(a2),grid_type(a0)
  663.     move.b    #2,grid_dirty(a0)
  664.     move.b    grid_data(a2),grid_data(a0)
  665.  
  666.     move.w    #DRAW_EMPTY,grid_draw(a2)
  667.     move.w    #TRANS_NONE,grid_trans(a2)
  668.     move.w    #G_EMPTY,grid_type(a2)
  669.     move.b    #2,grid_dirty(a2)
  670.     move.b    #EMPTY_REAL_EMPTY,grid_data(a2)
  671.     rts
  672.  
  673. * Trans_Left - Move Object one grid to the left
  674.  
  675. Trans_Ted_Left
  676.     move.w    #DRAW_TED,d0
  677.     bra    Trans_Left
  678. Trans_Rock_Left
  679.     move.w    #DRAW_ROCK,d0
  680.     bra    Trans_Left
  681. Trans_Diamond_Left
  682.     move.w    #DRAW_DIAMOND,d0
  683.     bra    Trans_Left
  684. Trans_Mover_Left
  685.     move.w    #DRAW_MOVER,d0
  686.     bra    Trans_Left
  687. Trans_Butterfly_Left
  688.     move.w    #DRAW_BUTTERFLY,d0
  689.     bra    Trans_Left
  690.  
  691. Trans_Left
  692.     move.l    a2,a0
  693.     add.l    #ONE_LEFT,a0
  694.     move.w    d0,grid_draw(a0)
  695.     move.w    #TRANS_NONE,grid_trans(a0)
  696.     move.w    grid_type(a2),grid_type(a0)
  697.     move.b    #2,grid_dirty(a0)
  698.     move.b    grid_data(a2),grid_data(a0)
  699.  
  700.     move.w    #DRAW_EMPTY,grid_draw(a2)
  701.     move.w    #TRANS_NONE,grid_trans(a2)
  702.     move.w    #G_EMPTY,grid_type(a2)
  703.     move.b    #2,grid_dirty(a2)
  704.     move.b    #EMPTY_REAL_EMPTY,grid_data(a2)
  705.     rts
  706.  
  707. * Trans_Right - Move Object one grid to the right
  708.  
  709. Trans_Ted_Right
  710.     move.w    #DRAW_TED,d0
  711.     bra    Trans_Right
  712. Trans_Rock_Right
  713.     move.w    #DRAW_ROCK,d0
  714.     bra    Trans_Right
  715. Trans_Diamond_Right
  716.     move.w    #DRAW_DIAMOND,d0
  717.     bra    Trans_Right
  718. Trans_Mover_Right
  719.     move.w    #DRAW_MOVER,d0
  720.     bra    Trans_Right
  721. Trans_Butterfly_Right
  722.     move.w    #DRAW_BUTTERFLY,d0
  723.     bra    Trans_Right
  724.  
  725. Trans_Right
  726.     move.l    a2,a0
  727.     add.l    #ONE_RIGHT,a0
  728.     move.w    d0,grid_draw(a0)
  729.     move.w    #TRANS_NONE,grid_trans(a0)
  730.     move.w    grid_type(a2),grid_type(a0)
  731.     move.b    #2,grid_dirty(a0)
  732.     move.b    grid_data(a2),grid_data(a0)
  733.  
  734.     move.w    #DRAW_EMPTY,grid_draw(a2)
  735.     move.w    #TRANS_NONE,grid_trans(a2)
  736.     move.w    #G_EMPTY,grid_type(a2)
  737.     move.b    #2,grid_dirty(a2)
  738.     move.b    #EMPTY_REAL_EMPTY,grid_data(a2)
  739.     rts
  740.  
  741. * Trans_Up - Move Object one grid up
  742.  
  743. Trans_Ted_Up
  744.     move.w    #DRAW_TED,d0
  745.     bra    Trans_Up
  746. Trans_Rock_Up
  747.     move.w    #DRAW_ROCK,d0
  748.     bra    Trans_Up
  749. Trans_Diamond_Up
  750.     move.w    #DRAW_DIAMOND,d0
  751.     bra    Trans_Up
  752. Trans_Mover_Up
  753.     move.w    #DRAW_MOVER,d0
  754.     bra    Trans_Up
  755. Trans_Butterfly_Up
  756.     move.w    #DRAW_BUTTERFLY,d0
  757.     bra    Trans_Up
  758.  
  759. Trans_Up
  760.     move.l    a2,a0
  761.     add.l    #ONE_UP,a0
  762.     move.w    d0,grid_draw(a0)
  763.     move.w    #TRANS_NONE,grid_trans(a0)
  764.     move.w    grid_type(a2),grid_type(a0)
  765.     move.b    #2,grid_dirty(a0)
  766.     move.b    grid_data(a2),grid_data(a0)
  767.  
  768.     move.w    #DRAW_EMPTY,grid_draw(a2)
  769.     move.w    #TRANS_NONE,grid_trans(a2)
  770.     move.w    #G_EMPTY,grid_type(a2)
  771.     move.b    #2,grid_dirty(a2)
  772.     move.b    #EMPTY_REAL_EMPTY,grid_data(a2)
  773.     rts
  774.  
  775.